﻿using HPSocket.Tcp;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IntelligentGateway.Services
{
    //public class IGTCPClient //暂时不用
    //{
    //    TcpClient _tcpClient;
    //    public IGTCPClient(string IPAddress,ushort Port)
    //    {
    //        _tcpClient = new TcpClient();
    //        _tcpClient.Port = Port;
    //        _tcpClient.Address = IPAddress;
    //        _tcpClient.OnReceive += _tcpClient_OnReceive;
    //        _tcpClient.OnClose += _tcpClient_OnClose;
    //        _tcpClient.OnSend += _tcpClient_OnSend;
    //    }

    //    private HPSocket.HandleResult _tcpClient_OnSend(HPSocket.IClient sender, byte[] data)
    //    {
    //        return HPSocket.HandleResult.Ok;
    //    }

    //    private HPSocket.HandleResult _tcpClient_OnClose(HPSocket.IClient sender, HPSocket.SocketOperation socketOperation, int errorCode)
    //    {
    //        Console.WriteLine("IGClient:Close()");
    //        this.Start();
    //        return HPSocket.HandleResult.Ok;
    //    }

    //    private HPSocket.HandleResult _tcpClient_OnReceive(HPSocket.IClient sender, byte[] data)
    //    {
    //        if (data.Length <= 0) return HPSocket.HandleResult.Ok;
    //        if (data[0] != 0xA7) return HPSocket.HandleResult.Ok;
    //        if (data[3] == 0x03)
    //        {
    //            IGTCPServerMessageProcess.MessageUnPacket(data);
    //        }
            
    //        return HPSocket.HandleResult.Ok;
    //    }
    //    public bool IsConnected
    //    {
    //        get
    //        {
    //            return _tcpClient.IsConnected;
    //        }
    //    }
    //    public bool SendData(byte[] data)
    //    {
    //        return _tcpClient.Send(data, data.Length);
    //    }
    //    public bool Start()
    //    {
    //        Task.Run(() =>
    //        {
    //            while (!_tcpClient.IsConnected)
    //            {
    //                _tcpClient.Connect();
    //                Task.Delay(5000).Wait();
    //            }
    //        });            
    //        return true;
    //    }

    //}
}
